home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / icdocsmenu.lha / util2.s < prev   
Text File  |  1987-10-01  |  18KB  |  721 lines

  1.     bra    Open
  2. Logo    Incbin    News
  3. bitmap1.1    equ    Logo
  4. Bitmap2.1    equ    Logo+3440
  5. Bitmap3.1    equ    Logo+6880
  6. Bitmap4.1    equ    Logo+10320
  7. bitmap1    equ    $70000        ;Screen 1 at $70000
  8. bitmap2    equ    $72800        ;Screen 2 at $72800
  9.  ** Try changing the following 5 equates for cool fx! **
  10.  
  11. sped    equ 4            ;Scrolly speed (1,2,4 or 8)
  12. yspace1    equ 2            ;Sine spacing (Max 512)
  13. yspeed1    equ 8            ;Sine wibble speed (max 512)
  14. sinesize    equ 140            ;Depth of sinescroller (max 220)
  15. stoptime    EQU 2            ;How many seconds scrolly pauses for!
  16.  
  17. blitwait    macro
  18. .bw\@    btst #6,2(a6)        ;Blitwait macro...
  19.     bne.s .bw\@        ;Wait for blitter to stop
  20.     endm
  21. Open
  22.     Section Fangs,code_c        ;Put everything into chip memory!
  23.     opt c-                ;Turn on Case Independant
  24.  
  25. Start    lea variables(pc),a5    ;Variables pointer in A5
  26.     lea custom,a6        ;Custom chip pointer in A6
  27.  
  28.     bsr deselect0        ;Turn off drive 0
  29.     bsr trash            ;Trash the operating system
  30.     bsr intcustom        ;Init Screen size,modulos etc.
  31.     bsr intbuffer        ;Init double buffer!
  32.     bsr makecop        ;Make the copper list
  33.     bsr initsine        ;Init sinetable!
  34.  
  35.     lea wherecop(pc),a0
  36.     move.l a0,cop1lc(a6)    ;Tell system where copper is...
  37.     move.w copjmp1(a6),d0    ;And start it
  38.     move.w #$87e0,dmacon(a6)    ;Enable Dma.
  39.     move.w #$20,intreq(a6)    ;Clear VBI IRQ bit.
  40.  
  41.    ***********************
  42.    ****** Main loop ******
  43.    ***********************
  44. .button    lea custom,a6
  45.     btst #5,intreqr+1(a6)    ;VBI interrupt?
  46.     beq.s .button
  47.     move.w #$20,intreq(a6)    ;Clear VBI IRQ bit.
  48.  
  49.     bsr cls            ;Clear screen!
  50.     bsr dosine        ;Do sine movement!
  51.     blitwait            ;Wait for blitter to stop clearing screen!
  52.     bsr scroll        ;Scroll message!
  53.     bsr blitsine        ;Blit scrolly onto screen
  54.     bsr doublebuffer        ;Double buffer the screen
  55.     Btst    #7,$bfe001
  56.     Beq    Exit
  57.     Btst    #10,$dff016
  58.     Beq    Exit
  59.     btst #6,$bfe001        ;Is left mouse button pressed?
  60.     bne.s .button
  61.  
  62. Exit     bsr.s untrash        ;Bring back operating system
  63.     moveq #0,d0        ;Stop a return error!
  64.     rts
  65.     
  66. trash    bset #1,$bfe001        ;Turn power light off
  67.     move.l $4.w,a6
  68.     lea gfxname(pc),a1
  69.     moveq #0,d0
  70.     jsr -552(a6)        ;Open graphics library
  71.     move.l d0,a0
  72.     move.l 38(a0),syscop(a5)    ;Store old system copper address!
  73.  
  74.     lea custom,a6
  75.     move.w intenar(a6),d0    ;Get system IRQ register
  76.     or.w #$8000,d0        ;Set top bit (For enable)
  77.     move.w d0,IRQ(a5)        ;Store it
  78.     move.w dmaconr(A6),d0    ;Get system DMA register
  79.     or.w #$8000,d0        ;Set top bit (For enable)
  80.     move.w d0,DMA(a5)        ;Store it
  81.  
  82.     move.w #$7fff,intena(a6)    ;All irq off
  83.     move.w #$7fff,dmacon(A6)    ;All dma off
  84.     rts
  85.  
  86. untrash    lea custom,a6
  87.     lea variables(pc),a5
  88.  
  89.     move.w #$7fff,$96(a6)    ;Kill DMA
  90.     move.w #$7fff,$9a(a6)    ;Kill IRQ
  91.     move.w DMA(a5),dmacon(A6)    ;Restore system DMA
  92.     move.w IRQ(a5),intena(a6)    ;Restore system IRQ
  93.     move.w #$7fff,intreq(a6)
  94.     clr.w aud0vol(a6)
  95.     clr.w aud1vol(a6)
  96.     clr.w aud2vol(a6)
  97.     clr.w aud3vol(a6)        ;Clear volume registers
  98.  
  99.     move.l syscop(a5),d0    ;Get old system copper address
  100.     move.l d0,cop1lc(a6)    ;And restore it!
  101.     move.l $4.w,a6
  102.     lea intname(pc),a1
  103.     moveq #0,d0
  104.     jsr -552(a6)
  105.     move.l d0,a6
  106.     jsr -390(a6)
  107.     bclr #1,$bfe001        ;Power light back on
  108.     rts
  109.  
  110. setmulti    move.w d7,(a0)+        ;Copper 32 bit write
  111.     swap d0
  112.     move.w d0,(a0)+
  113.     swap d0
  114.     addq.w #2,d7
  115.     move.w d7,(a0)+
  116.     move.w d0,(a0)+
  117.     addq.w #2,d7
  118.     add.l d5,d0
  119.     dbra d6,setmulti
  120.     rts
  121.  
  122. intcustom    clr.w bplcon1(a6)        ;Scroll value
  123.     clr.w bplcon2(a6)        ;Priorities
  124.     clr.w bpl1mod(a6)        ;Modulo A
  125.     clr.w bpl2mod(a6)        ;Modulo B
  126.     move.w #$0038,ddfstrt(a6)    ;Data fetch start
  127.     move.w #$00d0,ddfstop(a6)    ;Data fetch stop
  128.     move.w #$2c81,diwstrt(a6)    ;Window start
  129.     move.w #$2cc1,diwstop(a6)    ;Window stop
  130.     rts
  131.  
  132. makecop    lea wherecop(pc),a0        ;Copperlist address
  133.     
  134.     lea wherespr(pc),a1        ;First do sprites..
  135.     move.l a1,d0
  136.     moveq #7,d6        ;8 sprites
  137.     move.w #$120,d7        ;1st register no.
  138.     moveq #16,d5        ;16 bytes per sprite!
  139.     bsr setmulti
  140.  
  141.     move.l a0,changecop(a5)    ;Store copper address (For double buffer!)
  142.     move.l logbase(a5),d0    ;Bitmap address
  143.     moveq #1-1,d6        ;1 plane
  144.     move.w #$e0,d7        ;1st register no.
  145.     moveq #0,d5        ;Plane length
  146.     bsr setmulti
  147.  
  148.     move.l #$01001200,(a0)+    ;Set 1 bitplane
  149.     move.l #$01800000,(a0)+    ;Colour 0
  150.     Move.w    #$1801,Vpos
  151.     Lea    Col_Bank(Pc),a1
  152.     Move.w    #29,d1
  153. Loo    Move.w    Vpos,(a0)+
  154.     Move.l    #$fffe0180,(a0)+
  155.     Move.w    (a1)+,d2
  156.     Move.w    d2,(a0)+
  157.     Move.w    #$0182,(a0)+
  158.     Mulu    #$111,d2
  159.     move.w    d2,(a0)+
  160.     Add.w    #$680,Vpos
  161.     Dbf    d1,Loo
  162.     Move.l    #$d601fffe,(a0)+
  163.     move.l logoPlace1(a5),d0    ;Bitmap address
  164.     moveq #1-1,d6        ;1 plane
  165.     move.w #$e0,d7        ;1st register no.
  166.     moveq #0,d5        ;Plane length
  167.     bsr setmulti
  168.     move.l logoPlace2(a5),d0    ;Bitmap address
  169.     moveq #1-1,d6        ;1 plane
  170.     move.w #$e4,d7        ;1st register no.
  171.     moveq #0,d5        ;Plane length
  172.     bsr setmulti
  173.     move.l logoPlace3(a5),d0    ;Bitmap address
  174.     moveq #1-1,d6        ;1 plane
  175.     move.w #$e8,d7        ;1st register no.
  176.     moveq #0,d5        ;Plane length
  177.     bsr setmulti
  178.     move.l logoPlace4(a5),d0    ;Bitmap address
  179.     moveq #1-1,d6        ;1 plane
  180.     move.w #$ec,d7        ;1st register no.
  181.     moveq #0,d5        ;Plane length
  182.     bsr setmulti
  183.     Move.l    #$01004200,(a0)+
  184.     Move.w    #$0180,Vpos
  185.     Lea    Logo+4*3440,a1
  186.     Move.w    #15,d1
  187. Lopp    Move.w    Vpos,(a0)+
  188.     Move.w    (a1)+,(a0)+
  189.     Add.w    #2,Vpos
  190.     Dbf    d1,lopp
  191.     moveq #-2,d0
  192.     move.l d0,(a0)+        ;Wait for the impossible (END!)
  193.     rts
  194.  
  195. deselect0    lea cia_b,a0
  196.     bset #3,(a0)        ;deselect drive 0
  197.     bset #7,(a0)        ;switch motor off
  198.     bclr #3,(a0)        ;latch motor signal in disk
  199.     rts
  200.  
  201.  ************************************
  202.  *********** END OF SETUP ***********
  203.  ************************************
  204.  
  205. intbuffer    move.l #bitmap1,logbase(a5)    ;Init doublebuffer screen 1
  206.     move.l #bitmap2,physbase(a5)    ;Init doublebuffer screen 2
  207.     Move.l    #bitmap1.1,LogoPlace1(a5)
  208.     Move.l    #bitmap2.1,LogoPlace2(a5)
  209.     Move.l    #bitmap3.1,LogoPlace3(a5)
  210.     Move.l    #bitmap4.1,LogoPlace4(a5)
  211.     rts
  212.  
  213. doublebuffer
  214.     move.l logbase(a5),d0
  215.     move.l physbase(a5),logbase(a5)
  216.     move.l d0,physbase(a5)
  217.  
  218.     move.l changecop(a5),a0        ;Update copper!
  219.     moveq #0,d6
  220.     move.w #$e0,d7
  221.     moveq #0,d5
  222.     bsr setmulti
  223.     rts
  224.  
  225. cls    moveq #-1,d0
  226.     move.l d0,bltafwm(a6)        ;First and last word mask
  227.     clr.w bltcon1(a6)            ;No special modes
  228.     clr.w bltdmod(a6)            ;D modulo
  229.     move.w #%0000000100000000,bltcon0(a6)     ;No minterm just enable d!    
  230.  
  231.     move.l logbase(a5),bltdpt(A6)        ;Destination
  232.     move.w #(256<<6)!20,bltsize(a6)    ;256 high by 20 words wide
  233.     rts
  234.  
  235. scroll    tst.w stop(a5)
  236.     ble.s .ok
  237.     subq.w #1,stop(a5)
  238.     rts
  239.  
  240. .ok    bsr blitshift
  241.     subq.w #sped,scrcount(a5)
  242.     ble.s .gog
  243.     rts
  244. .gog    move.w #16,scrcount(a5)        ;Reset counter!
  245.  
  246.     lea text(pc),a2
  247.     move.w messcount(a5),d0        ;Message count
  248. .again    moveq #0,d1
  249.     move.b (a2,d0.w),d1            ;Get char
  250.     bne.s .dlf
  251.     clr.w messcount(a5)
  252.     move.w messcount(a5),d0
  253.     bra.s .again            ;Wrap at a zero
  254.  
  255. .dlf    cmp.w #$ff,d1
  256.     bne.s .nstop
  257.     move.w #stoptime*50,stop(a5)        ;Trigger stop    
  258.     moveq #32,d1
  259.  
  260. .nstop    addq.w #1,messcount(a5)        ;Update scroll offset
  261.     lea scrarea+82,a0
  262.     lea font,a1
  263.  
  264.     sub.w #32,d1            ;Ascii conversion!
  265. .go    cmp.w #20,d1
  266.     blt.s .nnl            ;Next line of chars?
  267.     lea 40*16(a1),a1            ;Move down a line!
  268.     sub.w #20,d1
  269.     bra.s .go
  270. .nnl    add.w d1,d1
  271.     add.w d1,a1            ;Get to char 
  272.  
  273.     moveq #15,d0
  274. .xloop    move.w (a1),(a0)            ;Plot char!
  275.     add.w #42,a0
  276.     add.w #40,a1
  277.     dbra d0,.xloop            ;Loop for 16 high
  278.     rts
  279.  
  280. blitshift    moveq #-1,d0
  281.     move.l d0,bltafwm(a6)
  282.     clr.w bltamod(a6)
  283.     clr.w bltdmod(a6)
  284.     clr.w bltcon1(a6)
  285.  
  286.     move.w #%0000100100000000!$f0,d0
  287.     moveq #sped,d1
  288.     neg.w d1
  289.     moveq #12,d2
  290.     lsl.w d2,d1            ;Work out speed (shift!)
  291.     or.w d1,d0
  292.     move.w d0,bltcon0(a6)        ;D=A Minterm
  293.  
  294.     move.l #scrarea,d0
  295.     move.l d0,bltdpt(A6)        ;Destination
  296.     addq.l #2,d0
  297.     move.l d0,bltapt(a6)        ;Source
  298.  
  299.     move.w #(17<<6)!20,bltsize(a6)
  300.     blitwait
  301.     rts
  302.  
  303. blitsine    clr.w bltcon1(a6)
  304.     move.w #42-2,bltamod(a6)
  305.     move.w #40-2,bltdmod(a6)
  306.     move.w #40-2,bltbmod(a6)
  307.  
  308.     move.l logbase(a5),d0
  309.     move.l d0,bltbpt(a6)        ;Init destination pointers!
  310.     move.l d0,bltdpt(a6)
  311.  
  312.     lea masklook(pc),a0
  313.     lea scrpos(pc),a1
  314.     move.l #scrarea+42,a2
  315.     move.l a2,bltapt(a6)        ;Init source pointer!
  316.     lea bltafwm(a6),a3
  317.     lea bltsize(a6),a4
  318.     move.l a7,stacksave(a5)        ;Save stack!
  319.     lea bltdpt+2(a6),a7
  320.     lea bltapt+2(a6),a5
  321.  
  322.     moveq #20-1,d7            ;20 words
  323.     move.w #(16<<6)!1,d6
  324.     move.w #%0000100100000000!$f0,d5
  325.     move.w #%0000110100000000!$fc,d4
  326.  
  327. .loop    move.w d5,bltcon0(a6)         ;D=A
  328.     move.w (a0)+,(a3)            ;First word mask
  329.     move.w a2,(a5)            ;Source
  330.     move.w (a1)+,(a7)            ;Destination
  331.     move.w d6,(a4)            ;Blitsize
  332.     blitwait
  333.  
  334.     move.w d4,bltcon0(a6)         ;D=A+B
  335.     rept 15
  336.     move.w (a0)+,(a3)            ;First word mask
  337.     move.w a2,(a5)            ;Source
  338.     move.w (a1),bltbpt+2(a6)        ;Destination
  339.     move.w (a1)+,(a7)            ;Destination
  340.     move.w d6,(a4)            ;Blitsize
  341.     blitwait
  342.     endr
  343.  
  344.     addq.w #2,a2            ;Next word along!
  345.     dbra d7,.loop
  346.  
  347.     lea variables(pc),a5
  348.     move.l stacksave(a5),sp
  349.     rts    
  350.  
  351. initsine    lea originalsine(pc),a0
  352.     move.w #511,d0
  353. .loop1    sub.w #128,(a0)+            ;Init original sine
  354.     dbra d0,.loop1
  355.  
  356.     lea originalsine(pc),a0
  357.     lea sine1(pc),a1
  358.     move.w #511,d0
  359. .loop2    move.w (a0)+,d1
  360.     muls.w #sinesize,d1            ;Size!
  361.     asr.w #8,d1
  362.     add.w #sinesize/2,d1
  363.     mulu.w #40,d1            ;Multiple of 40!
  364.     move.w d1,(a1)+            ;Make sinetable!
  365.     dbra d0,.loop2
  366.     rts
  367.  
  368. dosine    lea sine1(pc),a0
  369.     lea scrpos(pc),a1
  370.     move.l logbase(a5),a3
  371.     moveq #20-1,d7            ;20 words wide!
  372.     move.w sinestart1(a5),d0
  373.     move.w #1022,d3
  374.     move.w #yspace1,d4
  375. .loop    
  376.     rept 16
  377.     and.w d3,d0
  378.     move.w (a0,d0.w),d2
  379.     lea (a3,d2.w),a2            ;Add offset 1
  380.     add.w d4,d0            ;Spacing 1
  381.     move.w a2,(a1)+            ;Scroll position!
  382.     endr
  383.  
  384.     addq.w #2,a3            ;Next word along!
  385.     dbra d7,.loop
  386.     sub.w #yspeed1,sinestart1(a5)
  387.     rts
  388.  
  389.  
  390.    *** Equates and data below! ***
  391.  
  392. custom     EQU $dff000
  393. bltddat    EQU $000
  394. dmaconr    EQU $002
  395. vposr    EQU $004
  396. vhposr    EQU $006
  397. dskdatr    EQU $008
  398. joy0dat    EQU $00A
  399. joy1dat    EQU $00C
  400. clxdat    EQU $00E
  401. adkconr    EQU $010
  402. pot0dat    EQU $012
  403. pot1dat    EQU $014
  404. potinp    EQU $016
  405. serdatr    EQU $018
  406. dskbytr    EQU $01A
  407. intenar    EQU $01C
  408. intreqr    EQU $01E
  409. dskpt    EQU $020
  410. dsklen    EQU $024
  411. dskdat    EQU $026
  412. refptr    EQU $028
  413. vposw    EQU $02A
  414. vhposw    EQU $02C
  415. copcon    EQU $02E
  416. serdat    EQU $030
  417. serper    EQU $032
  418. potgo    EQU $034
  419. joytest    EQU $036
  420. strEQU    EQU $038
  421. strvbl    EQU $03A
  422. strhor    EQU $03C
  423. strlong    EQU $03E
  424. bltcon0    EQU $040
  425. bltcon1    EQU $042
  426. bltafwm    EQU $044
  427. bltalwm    EQU $046
  428. bltcpt    EQU $048
  429. bltbpt    EQU $04C
  430. bltapt    EQU $050
  431. bltdpt    EQU $054
  432. bltsize    EQU $058
  433. bltcmod    EQU $060
  434. bltbmod    EQU $062
  435. bltamod    EQU $064
  436. bltdmod    EQU $066
  437. bltcdat    EQU $070
  438. bltbdat    EQU $072
  439. bltadat    EQU $074
  440. dsksync    EQU $07E
  441. cop1lc    EQU $080
  442. cop2lc    EQU $084
  443. copjmp1    EQU $088
  444. copjmp2    EQU $08A
  445. copins    EQU $08C
  446. diwstrt    EQU $08E
  447. diwstop    EQU $090
  448. ddfstrt    EQU $092
  449. ddfstop    EQU $094
  450. dmacon    EQU $096
  451. clxcon    EQU $098
  452. intena    EQU $09A
  453. intreq    EQU $09C
  454. adkcon    EQU $09E
  455. aud0lc    EQU $0A0
  456. aud1lc    EQU $0b0
  457. aud2lc    EQU $0c0
  458. aud3lc    EQU $0d0
  459. aud0len    EQU $a4
  460. aud1len    EQU $b4
  461. aud2len    EQU $c4
  462. aud3len    EQU $d4
  463. aud0per    EQU $a6
  464. aud1per    EQU $b6
  465. aud2per    EQU $c6
  466. aud3per    EQU $d6
  467. aud0vol    EQU $a8
  468. aud1vol    EQU $b8
  469. aud2vol    EQU $c8
  470. aud3vol    EQU $d8
  471. aud0dat    EQU $aa
  472. aud1dat    EQU $ba
  473. aud2dat    EQU $ca
  474. aud3dat    EQU $da
  475. bpl1pth    EQU $0E0
  476. bpl2pth    EQU $0E4
  477. bpl3pth    EQU $0E8
  478. bpl4pth    EQU $0EC
  479. bpl5pth    EQU $0F0
  480. bpl6pth    EQU $0F4
  481. bplcon0    EQU $100
  482. bplcon1    EQU $102
  483. bplcon2    EQU $104
  484. bpl1mod    EQU $108
  485. bpl2mod    EQU $10A
  486. bpldat    EQU $110
  487. sprpt    EQU $120
  488. spr    EQU $140
  489. sd_pos    EQU $00
  490. sd_ctl    EQU $02
  491. sd_dataa     EQU $04
  492. sd_datab     EQU $08
  493. color00    EQU $180
  494. color01     EQU $182
  495. color02     EQU $184
  496. color03    EQU $186
  497. color04    EQU $188
  498. color05    EQU $18a
  499. color06    EQU $18c
  500. color07    EQU $18e
  501. color08    EQU $190
  502. color09    EQU $192
  503. color10    EQU $194
  504. color11    EQU $196
  505. color12    EQU $198
  506. color13    EQU $19a
  507. color14    EQU $19c
  508. color15    EQU $19e
  509. color16    EQU $1a0
  510. color17    EQU $1a2
  511. color18    EQU $1a4
  512. color19    EQU $1a6
  513. color20    EQU $1a8
  514. color21    EQU $1aa
  515. color22    EQU $1ac
  516. color23    EQU $1ae
  517. color24     EQU $1b0
  518. color25    EQU $1b2
  519. color26    EQU $1b4
  520. color27    EQU $1b6
  521. color28    EQU $1b8
  522. color29    EQU $1ba
  523. color30    EQU $1bc
  524. color31    EQU $1be
  525. diskreg    EQU $bfd100
  526. keydat    EQU $bfec01
  527. keyint    EQU $bfed01
  528. ctrla    EQU $bfee01
  529. ctrlb    EQU $bfef01
  530. ciatl    EQU $bfe401
  531. ciath    EQU $bfe501
  532. cia_a    EQU $bfe001        ;disk input bits
  533. cia_b    EQU $bfd100        ;disk output bits
  534.  
  535. intname    dc.b "intuition.library",0
  536. gfxname    dc.b "graphics.library",0
  537.     even
  538.  
  539. text    DC.B    '      INNER CITY     ',$FF
  540.     DC.B    '       PRESENTS      ',$FF
  541.     DC.B    '  DOCUMENTS DISK #2  ',$FF
  542.     DC.B    'CREDITS GOTO THE FOLLOWING MEMBERS '
  543.     DC.B    '       CODING!       ',$FF
  544.     DC.B    '        FANGS        ',$FF
  545.     DC.B    '       GRAPHIX       ',$FF
  546.     DC.B    '        EDDIE        ',$FF
  547.     DC.B    'ALL DOCUMENTS COLLECTED BY'
  548.     DC.B    '         POD         ',$FF
  549.     DC.B    'AND NOW FOR THE MEMBERS LIST'
  550.     DC.B    '         ADS         ',$FF
  551.     DC.B    'MANAGEMENT + FOUNDER + ORIGINALS SUPPLIER + SWAPPER'
  552.     DC.B    '        CASP         ',$FF
  553.     DC.B    'MUSICIAN'
  554.     DC.B    '         POD         ',$FF
  555.     DC.B    'MANAGEMENT + SWAPPER'
  556.     DC.B    '      ENGINEER       ',$FF
  557.     DC.B    'MODEM TRADER'
  558.     DC.B    '         AXL         ',$FF
  559.     DC.B    'SPECIAL ASSIGNMENTS'
  560.     DC.B    '         DAX         ',$FF
  561.     DC.B    'CODER'
  562.     DC.B    '       HOTWIRE       ',$FF
  563.     DC.B    'CODER'
  564.     DC.B    '        Q.E.D        ',$FF
  565.     DC.B    'CRACKER + CODER'
  566.     DC.B    '      RORSCHACH      ',$FF
  567.     DC.B    'SWAPPER'
  568.     DC.B    '       ALMANAC       ',$FF
  569.     DC.B    'SWAPPER'
  570.     DC.B    '       DENNIS        ',$FF
  571.     DC.B    'GRAPHIX + VIDEO SWAPPER'
  572.     DC.B    '         TNT         ',$FF
  573.     DC.B    'MUSICIAN             '
  574.     DC.B    '       DOMINO        ',$FF
  575.     DC.B    'SWAPPER + VIDEO SWAPPER'
  576.     DC.B    '        RICK         ',$FF
  577.     DC.B    'SWAPPER + VIDEO SWAPPER'
  578.     DC.B    '        FANGS        ',$FF
  579.     DC.B    'CODER + SWAPPER'
  580.     DC.B    '     CRAZY LEGS      ',$FF
  581.     DC.B    'GRAPHIX'
  582.     DC.B    '      KID VIDEO      ',$FF
  583.     DC.B    'ORIGINAL SUPPLIER + VIDEO SWAPPER'
  584.     DC.B    '        SUKY         ',$FF
  585.     DC.B    'ORIGINAL SUPPLIER'
  586.     DC.B    '        EDDIE        ',$FF
  587.     DC.B    'GRAPHIX      '
  588.     DC.B    'AND NOW FOR THE SUPER HOT GREETINGS ... '
  589.     DC.B    '     TEKNO TISKE     ',$FF
  590.     DC.B    '       JROK 90       ',$FF
  591.     DC.B    '        ZARCH        ',$FF
  592.     DC.B    '         COSY        ',$FF
  593.     DC.B    '      DEMOLISHER     ',$FF
  594.     DC.B    '         PIE         ',$FF
  595.     dc.b    '         DUG         ',$FF
  596.     DC.B    '        MOSES        ',$FF
  597.     DC.B    '        WIZOID       ',$FF
  598.     DC.B    '        N.R.G        ',$FF
  599.     DC.B    '         BILL        ',$FF
  600.     DC.B    '    JAILER / FOCUS   ',$FF
  601.     DC.B    '      OMEGA ONE      ',$FF
  602.     DC.B    '       DESTINY       ',$FF
  603.     DC.B    '       SNOWMAN       ',$FF
  604.     DC.B    '         FRED        ',$FF
  605.     DC.B    '        STEVE        ',$FF
  606.     DC.B    '        RANDOM       ',$FF
  607.     DC.B    '      SLIPSTREAM     ',$FF
  608.     DC.B    '         THR         ',$FF
  609.     DC.B    '       EXTREAM       ',$FF
  610.     DC.B    '    PENDEL EUROPA    ',$FF
  611.     DC.B    '       SILENTS       ',$FF
  612.     DC.B    '        MAYHEM       ',$FF
  613.     DC.B    '       QUARTEX       ',$FF
  614.     DC.B    '       ALCATRAZ      ',$FF
  615.     DC.B    '   CONQUEROR + ZIKE  ',$FF
  616.     DC.B    '      FAIRLIGHT      ',$FF
  617.     DC.B    '  VANDAL AND STATIC  ',$FF
  618.     DC.B    '   MAGNETIC FIELDS   ',$FF
  619.     DC.B    '        REBELS       ',$FF
  620.     DC.B    '      CRUSADERS      ',$FF
  621.     DC.B    '       PARADOX       ',$FF
  622.     DC.B    'PLUS ALL THE REST I HAVE MISSED    '
  623.     DC.B    '         WRAP        ',$FF
  624.     even
  625.  
  626. originalsine
  627.     DC.w 128,129,131,132,134,135,137,138,140,142,143,145,146,148,149
  628.     DC.w 151,152,154,156,157,159,160,162,163,165,166,168,169,171,172
  629.     DC.w 174,175,176,178,179,181,182,184,185,186,188,189,191,192,193
  630.     DC.w 195,196,197,199,200,201,202,204,205,206,207,209,210,211,212
  631.     DC.w 213,215,216,217,218,219,220,221,222,223,224,225,226,227,228
  632.     DC.w 229,230,231,232,233,234,235,236,236,237,238,239,240,240,241
  633.     DC.w 242,243,243,244,245,245,246,246,247,247,248,249,249,250,250
  634.     DC.w 250,251,251,252,252,252,253,253,253,254,254,254,254,255,255
  635.     DC.w 255,255,255,255,255,255,255,255,256,255,255,255,255,255,255
  636.     DC.w 255,255,255,255,254,254,254,254,253,253,253,252,252,252,251
  637.     DC.w 251,250,250,250,249,249,248,247,247,246,246,245,245,244,243
  638.     DC.w 243,242,241,240,240,239,238,237,236,236,235,234,233,232,231
  639.     DC.w 230,229,228,227,226,225,224,223,222,221,220,219,218,217,216
  640.     DC.w 215,213,212,211,210,209,207,206,205,204,202,201,200,199,197
  641.     DC.w 196,195,193,192,191,189,188,186,185,184,182,181,179,178,176
  642.     DC.w 175,174,172,171,169,168,166,165,163,162,160,159,157,156,154
  643.     DC.w 152,151,149,148,146,145,143,142,140,138,137,135,134,132,131
  644.     DC.w 129,127,126,124,123,121,120,118,117,115,113,112,110,109,107
  645.     DC.w 106,104,103,101,99,98,96,95,93,92,90,89,87,86,84
  646.     DC.w 83,81,80,79,77,76,74,73,71,70,69,67,66,64,63
  647.     DC.w 62,60,59,58,56,55,54,53,51,50,49,48,46,45,44
  648.     DC.w 43,42,40,39,38,37,36,35,34,33,32,31,30,29,28
  649.     DC.w 27,26,25,24,23,22,21,20,19,19,18,17,16,15,15
  650.     DC.w 14,13,12,12,11,10,10,9,9,8,8,7,6,6,5
  651.     DC.w 5,5,4,4,3,3,3,2,2,2,1,1,1,1,0
  652.     DC.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  653.     DC.w 0,0,0,0,0,1,1,1,1,2,2,2,3,3,3
  654.     DC.w 4,4,5,5,5,6,6,7,8,8,9,9,10,10,11
  655.     DC.w 12,12,13,14,15,15,16,17,18,19,19,20,21,22,23
  656.     DC.w 24,25,26,27,28,29,30,31,32,33,34,35,36,37,38
  657.     DC.w 39,40,42,43,44,45,46,48,49,50,51,53,54,55,56
  658.     DC.w 58,59,60,62,63,64,66,67,69,70,71,73,74,76,77
  659.     DC.w 79,80,81,83,84,86,87,89,90,92,93,95,96,98,99
  660.     DC.w 101,103,104,106,107,109,110,112,113,115,117,118,120,121,123
  661.     DC.w 124,126
  662.  
  663. sine1    ds.w 512
  664.  
  665. masklook    
  666.     rept 20
  667.     dc.w %1000000000000000
  668.     dc.w %0100000000000000
  669.     dc.w %0010000000000000
  670.     dc.w %0001000000000000
  671.     dc.w %0000100000000000
  672.     dc.w %0000010000000000
  673.     dc.w %0000001000000000
  674.     dc.w %0000000100000000
  675.     dc.w %0000000010000000
  676.     dc.w %0000000001000000
  677.     dc.w %0000000000100000
  678.     dc.w %0000000000010000
  679.     dc.w %0000000000001000
  680.     dc.w %0000000000000100
  681.     dc.w %0000000000000010
  682.     dc.w %0000000000000001
  683.     endr
  684.  
  685. shftlook    dc.w $09f0,$19f0,$29f0,$39f0,$49f0,$59f0,$69f0,$79f0
  686.     dc.w $89f0,$99f0,$a9f0,$b9f0,$c9f0,$d9f0,$e9f0,$f9f0
  687.  
  688. scrpos    ds.w 320
  689.  
  690.     rsreset
  691. syscop    rs.l 1
  692. irq    rs.w 1
  693. dma    rs.w 1
  694. physbase    rs.l 1
  695. logbase    rs.l 1
  696. changecop    rs.l 1
  697. scrcount    rs.w 1
  698. stop    rs.w 1
  699. messcount    rs.w 1
  700. LogoPlace1    Rs.l 1
  701. LogoPlace2    Rs.l 1
  702. LogoPlace3    Rs.l 1
  703. LogoPlace4    Rs.l 1
  704. Vpos    Rs.w    0
  705. Col_bank    dc.w    1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
  706.  
  707. sinestart1 rs.w 1
  708. stacksave    rs.l 1
  709.  
  710. varisize    rs.w 0
  711. Variables    dcb.b varisize,0
  712.  
  713. wherespr    dcb.b 16*8,0    ;128 bytes for hardware sprites
  714. wherecop     dcb.b 2000,0    ;2k for copper list
  715. **************************
  716.     section bud,data_c
  717. font    incbin    FONT.RAW
  718.  
  719.     section cake,bss_C
  720. scrarea    ds.b 42*20
  721.